home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CDsupport / IDer / Routines / Routines.s < prev    next >
Text File  |  1997-02-18  |  1KB  |  60 lines

  1. FindData:    Movem.L    A2/A3,-(SP)        ; ### Standard FindData() routine ###
  2. .FindDataLoop    Moveq    #0,D0
  3.     Moveq    #0,D1
  4.     Move.B    (A0),D0
  5.     Bsr.S    ChangeCase
  6.     Move.B    D0,D1
  7.     Move.B    (A1)+,D0
  8.     Tst.B    D0
  9.     Beq.S    .Exit
  10.     Bsr.S    ChangeCase
  11.     Cmp.B    D0,D1
  12.     Bne.S    .FindDataLoop
  13.  
  14.     Lea    1(A0),A2
  15.     Move.L    A1,A3
  16.  
  17. .findloop    Move.B    (A2)+,D0
  18.     Tst.B    D0
  19.     Beq.S    .Found
  20.     Bsr.S    ChangeCase
  21.     Move.B    D0,D1
  22.     Move.B    (A3)+,D0
  23.     Bsr.S    ChangeCase
  24.     Cmp.B    D0,D1
  25.     Bne.S    .FindDataLoop
  26.     Bra.S    .findloop
  27.  
  28. .Exit    Moveq    #-1,D0
  29.     Movem.L    (SP)+,A2/A3
  30.     Rts
  31.  
  32. .Found    Lea    -1(A1),A0
  33.     Move.L    A3,A1
  34.     Moveq    #0,D0
  35.     Movem.L    (SP)+,A2/A3
  36.     Rts
  37.  
  38. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  39. ChangeCase:    Cmp.B    #'a',D0        ; ### Standard convert to UpperCase() routine ###
  40.     Blo.S    .exit
  41.     Cmp.B    #'z',D0
  42.     Bls.S    .change
  43.     Cmp.B    #$E0,D0
  44.     Blo.S    .exit
  45.     Cmp.B    #$FD,D0
  46.     Bhi.S    .exit
  47.     Cmp.B    #$F7,D0
  48.     Beq.S    .exit
  49.  
  50. .change    Sub.B    #32,D0
  51. .exit    Rts
  52.  
  53. ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  54. StripQuotes:    Move.B    (A0)+,D0        ;copies a string
  55.     Cmp.B    #'"',D0        ;while removing any "'s it may find
  56.     Beq.S    StripQuotes
  57.     Move.B    D0,(A1)+
  58.     Bne.S    StripQuotes
  59.     Rts
  60.